package com.util;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.Map;


@Component
public class JsonUtil {

    public static void jsonConvertMap(JSONObject json, Map<String, Object> map, String parentKey) {
        if (json != null && json.size() > 0) {
            for (String k : json.keySet()) {
                String key = k;
                if (StringUtils.isNotEmpty(parentKey)) {
                    key = parentKey + "." + key;
                }
                Object v = json.get(k);
                if (v instanceof JSONArray) {
                    JSONArray jsonArray = ((JSONArray) v);
                    for (int i = 0; i < jsonArray.size(); i++) {
                        JSONObject json2 = (JSONObject) jsonArray.get(i);
                        jsonConvertMap(json2, map, key + "[" + i + "]");
                    }
                } else if (v instanceof JSONObject) {
                    JSONObject child = (JSONObject) v;
                    jsonConvertMap(child, map, key);
                } else {
                    map.put(key, v);
                }
            }
        }
    }
    public static void jsonLoop(Object object) {

        if(object instanceof JSONObject) {
            JSONObject jsonObject = (JSONObject) object;
            for (Map.Entry<String, Object> entry: jsonObject.entrySet()) {
                Object o = entry.getValue();
                if(o instanceof String) {
                    System.out.println("key:" + entry.getKey() + "，value:" + entry.getValue());
                } else {
                    jsonLoop(o);
                }
            }
        }
        if(object instanceof JSONArray) {
            JSONArray jsonArray = (JSONArray) object;
            for(int i = 0; i < jsonArray.size(); i ++) {
                jsonLoop(jsonArray.get(i));
            }
        }
    }
}
